L'informatique a connu un changement fondamental entre optimisé pour la latence le design des CPU vers orienté débit les architectures GPU. Alors qu'un CPU est comme un scooter de livraison à grande vitesse (rapide pour une seule commande), un GPU est un immense cargo : il se déplace plus lentement par unité, mais transporte 50 000 conteneurs en même temps.
1. Latence vs. Débit
Les CPU sont conçus pour minimiser le "temps de traitement" d'une seule séquence d'instructions en utilisant des techniques avancées de prédiction de branches. À l'inverse, unités de traitement graphique (GPU) sont conçus pour maximiser le "travail par seconde" en exécutant des milliers de threads en parallèle, en sacrifiant la vitesse d'un thread unique au profit d'un débit global massif.
2. Répartition des transistors
Un GPU offre un débit d'instructions et une bande passante mémoire bien supérieurs à ceux d'un CPU dans un cadre de prix et de consommation similaire. Les GPU sont spécialisés dans les calculs hautement parallèles et consacrent davantage de transistors aux unités de traitement des données (ALU), tandis que les CPU consacrent davantage de transistors au cache de données et au contrôle du flux.
3. L'évolution de CUDA
Architecture unifiée de calcul (CUDA) a été introduit par NVIDIA en 2006. C'est une plateforme de calcul parallèle et un modèle de programmation qui permet des augmentations spectaculaires de performance en exploitant le pouvoir du GPU indépendamment des API graphiques.